/* This file declares the functions used to manage delayed process in the OS */

#ifndef DELAY_H 
#define DELAY_H

#include "process_management.h"
#include "timer.h"

/* inserts pcb in the delayed array */
uint32_t insert_delayed(PCB* pcb);

/* go through the delayed array, decrements the waiting times and wakes up the processes that are done waiting */
void process_delayed();

/* removes the PCB pcb from the delayed array. Returns 1 if success, 0 otherwise */
int32_t remove_delayed(PCB* pcb);

#endif
